You are here: Statements and Functions > Move
Syntax samples
MOVE {FOR <time expression>}
MOVE FOR .25 min
MOVE FOR 3.2
MOVE
Moves the entity to the end of a queue or conveyor location. Use the MOVE statement to explicitly control the movement of an entity through a queue or conveyor.
Please note
If there is no MOVE statement, when an entity enters a queue or conveyor, it executes all the processing logic defined for the entity at that location and then moves to the end of the queue or conveyor. For queues, its movement time is based on the entity’s speed and the queue’s length. For conveyors, its movement time is based on the conveyor speed and length.
If an entity processing at a queue or conveyor encounters a MOVE statement, the entity stops executing the processing logic, moves to the end of the queue or conveyor in the appropriate amount of time, and then resumes the processing logic. The move-time for an entity on a conveyor is calculated using the following formula:
Time = (Conveyor Length - Entity Length or Width)/Conveyor Speed
For queues only, a MOVE may optionally be followed by a FOR statement and then a move-time. If a move-time is specified, the entity moves through the queue in the specified amount of time regardless of the entity’s speed and the queue’s length. Entities with shorter move times will catch up to, but will not pass, entities with longer move times.
If a queue is not empty when an entity enters the queue, then the move-time will continue to elapse even though the arriving entity’s graphic may have stopped moving. When an entity’s move-time has elapsed, an entity will begin executing any logic following the MOVE statement and then will be available for routing, even if graphically the entity does not appear to be at the end of the queue.
For a conveyor, if additional logic follows a MOVE statement, the entity must advance to the last position on the conveyor before the remaining logic is executed.
The operation column of process edit tables only, and only if the location is a queue or a conveyor. MOVE may only be used once per logic.
Components
<time expression>
The amount of time needed for the entity to travel through the queue. This expression is ignored for conveyors. It is evaluated every time the statement is encountered and should be on the same line as the MOVE command.
Example
The example below shows the processing steps necessary to mimic the behavior of a queue system using MOVE statements. Locations Queue1, Queue2 and Queue3 should each be represented graphically with a queue symbol. The time value in the MOVE statement represents the time required to traverse each queue section from beginning to end when the queue is empty.
Process Table
Entity |
Location |
Operation (min) |
---|---|---|
ALL |
Queue1 |
MOVE FOR 2.5 |
ALL |
Queue2 |
MOVE FOR 3.5 |
ALL |
Queue3 |
... |
Routing Table
Blk |
Output |
Destination |
Rule |
Move Logic |
---|---|---|---|---|
1 |
ALL |
Queue2 |
FIRST 1 |
|
1 |
ALL |
Queue3 |
FIRST 1 |
|
... |
... |
... |
... |
... |
Locations. Also see WAIT.